// 格式化日期
function formatDate(dateStr) {
  if (!dateStr) return '';
  try {
    const date = new Date(dateStr);
    if (isNaN(date.getTime())) return ''; // 无效日期返回空字符串

    // 返回 YYYY-MM-DD 格式
    return date.toISOString().split('T')[0];
  } catch (error) {
    console.error('日期格式化错误:', error);
    return '';
  }
}

// 格式化日期时间
function formatDateTime(dateStr) {
  if (!dateStr) return '-'; // 如果日期为空返回占位符
  try {
    const date = new Date(dateStr);
    if (isNaN(date.getTime())) return '-'; // 如果日期无效返回占位符

    return date.toLocaleString('zh-CN', {
      year: 'numeric',
      month: '2-digit',
      day: '2-digit',
      hour: '2-digit',
      minute: '2-digit',
      hour12: false
    });
  } catch (error) {
    console.error('日期格式化错误:', error);
    return '-';
  }
}

// 渲染事件行
function renderEventRow(event) {
  const levelClass = `event-${event.level.toLowerCase()}`;
  const statusClass = `status-${event.status.replace(/\s/g, '-')}`;

  return `
    <tr class="${levelClass} ${statusClass}">
      <td>${event.title || ''}</td>
      <td>${event.categoryName || ''}</td>
      <td>${event.level || ''}</td>
      <td>${formatDate(event.startDate)}</td>
      <td>${formatDate(event.endDate)}</td>
      <td>${event.status || ''}</td>
      <td>
        <button onclick="editEvent(${event.eventId})" class="layui-btn layui-btn-xs">编辑</button>
        <button onclick="deleteEvent(${event.eventId})" class="layui-btn layui-btn-danger layui-btn-xs">删除</button>
        ${event.status !== '已完成' ?
      `<button onclick="updateEventStatus(${event.eventId}, '已完成')" class="layui-btn layui-btn-xs layui-btn-normal">标记完成</button>` : ''}
        ${event.status !== '作废' ?
      `<button onclick="updateEventStatusToVoid(${event.eventId})" class="layui-btn layui-btn-xs layui-btn-warm">标记作废</button>` : ''}
      </td>
    </tr>
  `;
}

// 消息提示封装
const Message = {
  success: (msg) => {
    layer.msg(msg, {
      icon: 1,
      time: 2000
    });
  },
  error: (msg) => {
    layer.msg(msg, {
      icon: 2,
      time: 2000
    });
  },
  confirm: (msg, callback) => {
    layer.confirm(msg, {
      btn: ['确定', '取消'],
      title: '确认'
    }, callback);
  }
};
